package httpsvr

import (
	"encoding/json"
	"errors"
)

//RespMsg 响应给客户端的数据结构
type RespMsg struct {
	Code        int         `json:"code"`
	DataList    interface{} `json:"dataList"`
	TotalRecord int         `json:"totalRecord"`
	PageSize    int         `json:"pagesize"`
	PageNo      int         `json:"pageno"`
	Message     string      `json:"message"`
}

//NewRespMsg 创建新的响应信息结构
func NewRespMsg(code int) *RespMsg {
	rmsg := &RespMsg{}
	rmsg.SetCode(code)
	return rmsg
}

//SetCode 设置错误代码及错误信息
func (rmsg *RespMsg) SetCode(code int) error {
	msg, ok := statusText[code]
	if !ok {
		err := errors.New("无效的code")
		return err
	}
	rmsg.Code = code
	rmsg.Message = msg
	return nil
}

//Bytes 转换为byte
func (rmsg *RespMsg) Bytes() (rstr []byte) {
	rstr, _ = json.Marshal(rmsg)
	return
}

//Strings 转换为string
func (rmsg *RespMsg) Strings() (rstr string) {
	r, _ := json.Marshal(rmsg)
	return string(r)
}
